Printing graphics with transparency on a postscript enabled image forming device

ABSTRACT

What is disclosed is a novel system and method for emulating transparency in a PostScript-enabled image forming device, such as a PostScript-enabled print device. The present system and method uses Adobe&#39;s DeviceN color space to support transparency printing on PostScript-enabled devices. The present method uses abstract data represented by a color plane in DeviceN space to indicate the existence of a transparency layer in the image to be printed. An emulation procedure is then called to perform a color space transformation and to perform color blending of the first image into the second image. A transparency value is used as one of the colorant channels to define the blending. Advantageously, the present method is backward compatible as there is no update required to the printer&#39;s driver or firmware. The present method has been demonstrated to work with Adobe Reader and PostScript Level-3.

TECHNICAL FIELD

The presently disclosed embodiments are directed to systems and methodsfor printing graphical files with transparency on a PostScript-enabledimage forming device, such as a printer.

BACKGROUND

Portable Document Format (PDF) is a file format created by Adobe®Systems for document exchange. PDF is used for representingtwo-dimensional documents in a manner independent of the applicationsoftware, hardware, and operating system. Among the features supportedby PDF is transparency. Basic transparency is an effect that lets theviewer see through an object. End-users can specify the transparencyattributes of selected page items. Opacity is the converse oftransparency. Each is typically expressed as a percentage, where 0%relates to completely clear, i.e. not transparent, and 100% relates tocompletely opaque, i.e. completely invisible to the end-user. Page itemscan have individual opacities assigned to them. Blending mode defineshow the background (backdrop) and foreground (source) colors interact.

Starting with version 1.4 of the PDF standard, transparency, (includingtranslucency), is supported. This is a very complex model, requiringover 100 pages to document. A key source of complication is that PDFfiles may contain objects with different color spaces, and blending suchobjects can be difficult. PDF supports many different blend modes, notjust the most common averaging method. In addition, rules forcompositing many overlapping objects allow choices, such as whether agroup of objects are to be blended before being blended with thebackground, or whether each object in turn is to be blended into thebackground.

PostScript®, a registered trademark of Adobe® Systems, is a pagedescription programming language created by Adobe for the electronic anddesktop publishing areas. PostScript is the language used for driving awide variety of commercially available laser printing devices. ThePostScript language does not inherently support transparency. Thispresents a problem with printing PDF files on a PostScript-enabledprinting device.

Accordingly, what is needed is in this art are increasinglysophisticated systems and methods which emulating transparency in aPostScript-enabled printer.

BRIEF SUMMARY

What is disclosed is a novel system and method for emulatingtransparency in a PostScript-enabled image forming device, such as aprinter. The present method operates when a first image is an imageablesubstrate, such a paper substrate, upon which a second image is to beblended. The present system and method utilizes Adobe's DeviceN colorspace to support transparency printing on PostScript-enabled devices.Abstract data represented by a color plane in DeviceN space is used toindicate the existence of a transparency layer in the image. Anemulation procedure is then called to perform a color spacetransformation (flattening) and to perform color blending (blending) ofthe first image into the second image. A transparency value is used asone of the colorant channels to define the blending. Advantageously, thepresent method is backward compatible with a wide variety ofPostScript-enabled devices as there are no updates required to thedevice's driver or any of the firmware. The present system and methodprovides a cost effective solution to the problem of handlingtransparencies using a PostScript operator. The method has beendemonstrated to work with Adobe Reader and PostScript Level-3.

In one embodiment, the present method for emulating transparency in aPostScript-enabled image forming device involves performing thefollowing. A first image and a second image to be blended together arereceived. Two or more colorant channels are also received from anapplication for forming an image on a PostScript-enabled device. Atleast one of the received colorant channels is a transparency value usedfor blending in DeviceN color space of PostScript. Custom PostScriptcode is created for flattening and blending the first image into thesecond image on the device. The PostScript code is then sent to thePostScript-enabled device to perform the flattening and blending.

Other features and advantages of the above-described system and methodwill become more readily apparent from the following detaileddescription and accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing and other features and advantages of the subject matterdisclosed herein will be made apparent from the following detaileddescription taken in conjunction with the accompanying drawings, inwhich:

FIG. 1 is an example block diagram of functional components of aninformation processing system, such as a computer, communicating with animage forming device;

FIG. 2 illustrates a block diagram of the major electronic componentsfor either the hardware of client (at 102) and/or that of the imageforming device (at 132) of FIG. 1;

FIG. 3 is a diagram of input channels in two different color spaces;CMYK shown as color channels (at 302-310) and RGB shown as channels (at312-318), along with a colorant value as a transparency value in theDeviceN color space model being flattened and blended (at 360);

FIG. 4 is a flow diagram of one example embodiment of the present methodfor emulating transparency in a PostScript-enabled image forming device;

FIG. 5 is an example using the embodiments of FIGS. 3 and 4, implementedby the code in FIG. 7, for a series of input levels or planes of a firstimage and a second image being combined with transparency with theblending color space being DeviceCMYK;

FIG. 6 shows a resulting image (at 602) having been flattened andblended by the embodiment of FIG. 5; and

FIGS. 7 and 8 provide example PostScript code implementing the method ofthe flow diagram of FIG. 4.

DETAILED DESCRIPTION

What is disclosed is a novel system and method for emulatingtransparency in a PostScript-enabled image forming device, such as aprinter. The present method operates when a first image is an imageablesubstrate, such a paper substrate, upon which a second image is to beblended. It should be understood that the embodiments described hereinare only examples of the many advantageous uses of the innovativeteachings herein.

It should also be understood that one of ordinary skill in this artwould be readily familiar with color, imaging, color management, andother related techniques and algorithms commonly found in the art ofxerography. One of ordinary skill in this art would also be readilyfamiliar with systems, software, and programming sufficient to implementthe following functionality and capabilities as described in detailherein in their own system environments without undue experimentation.

Transparency in PostScript

Transparency is an effect applied to an object that causes it to appeartransparent. A transparent object lets objects that lie underneath it toshow through. Opacity is the converse of transparency. Transparencyattributes of selected page items can be user-specified. Eachtransparency attribute is typically expressed as a percentage, where 0%relates to completely clear, i.e. not transparent, and 100% relates tocompletely opaque, i.e. completely invisible to the end-user. Page itemscan have individual opacities assigned to them. Blending mode defineshow the background (backdrop) and foreground (source) colors interact.Transparency in Adobe publishing applications is referred to as either“live” (editable, interactive with underlying objects, or both) or“flattened”. The transparency attributes of objects created in Adobepublishing applications stay “live” and fully editable while in theirnative Photoshop CS3, Illustrator CS3, or InDesign CS3 format. That sametransparency remains live, but not editable, when placed or importedinto non-native applications that support the native file format (suchas PDF 1.4, 1.5, 1.6, and 1.7). In order to keep your workflow asflexible as possible, one must keep the transparency live as long aspossible until the final output (up to and including flattening in theRIP) so you take advantage of transparency's device independence (asvector art rather than raster images with fixed resolution); how easilyit can be edited; and the ability to make last-minute productiondecisions without worrying about settings used for previously flatteneditems. Transparency is flattened when a file containing livetransparency is converted into a format that doesn't support livetransparency, or the file is printed.

The PostScript language has limited support for full (not partial)transparency, depending on the PostScript level. On the other hand, PDFsupports transparency. This presents a problem with printing PDF fileson a PostScript-enabled printer. Although the embodiments hereof havebeen described with respect to the PostScript language, it should beclearly understood that the scope of the appended claims encompass anypage description language (or software or hardware emulation thereof)which manipulates color in Adobe's DeviceN color space.

Level-1 PostScript implements transparency where a one-bit (monochrome)image can be treated as a mask. In this case the 1-bits can be paintedany single color, while the 0-bits are not painted at all. Thistechnique cannot be generalized to more than one color, or to vectorshapes. Clipping paths can be defined. These restrict what part of allsubsequent graphics can be seen. This can be used for any kind ofgraphic, however in Level-1, the maximum number of nodes in a path wasoften limited to 1500, so complex paths (e.g. cutting around the hair ina photograph of a person's head) often failed.

Level-2 PostScript adds no specific transparency features. However, bythe use of patterns, arbitrary graphics can be painted through masksdefined by any vector or text operations. This is, however, complex toimplement. In addition, this too often has reached implementationlimits, and few, if any, application programs ever offered thistechnique.

Level-3 PostScript adds a further transparency option for any rasterimage. A transparent color, or range of colors, can be applied; or aseparate 1-bit mask can be used to provide an alpha channel.

Encapsulated PostScript (EPS) is an extension of the PostScript graphicsfile format developed by Adobe Systems. EPS is used for PostScriptgraphics files that are to be incorporated into other documents. An EPSfile includes special PostScript comments called “pragmas” which provideinformation such as the bounding box, page number and fonts used. EPSfiles contain PostScript code, which may be Level 1, 2 or 3, and makeuse of the features above. On some computers, EPS files include a lowresolution version of the PostScript image. A more subtle issue ariseswith the previews for EPS files that are typically used to show the viewof the EPS file on screen. There are viable techniques for settingtransparency in the preview. For example, a TIFF preview might use aTIFF alpha channel. However, many applications do not use thistransparency information and will therefore show the preview as arectangle. A semi-proprietary technique, pioneered in Photoshop andadopted by a number of pre-press applications, is to store a clippingpath in a standard location of the EPS, and use that for display. Inaddition, few of the programs that generate EPS previews will generatetransparency information in the preview. Some programs have sought toget around this by treating all white in the preview as transparent, butthis too is problematic in the cases where some whites are nottransparent. More recently, applications have been appearing that ignorethe preview altogether; they therefore get information on which parts ofthe preview to paint by interpreting the PostScript.

The embodiments disclosed herein provide a novel method of supportingtransparency within the existing Level-3 framework. No changes to thecompiled code are required. As such, the present method is backwardscompatible on any existing PostScript-enabled image forming device.

The interested reader hereof is respectfully directed to the followingAdobe publications: “A Designer's Guide to Transparency for PrintOutput”, and “Transparency in Adobe Applications: A Print ProductionGuide”, each of which, as of the filing date hereof, are freelyavailable for download from Adobe's website [www.adobe.com], and arehereby incorporated in their entirety by reference.

DEFINITIONS

The term “Colorant Channel”, as used herein, refers to any channel in agiven color space. Example color spaces include RGB, CMYK, CIE Lab,calibrated device space, calibrated RGB, pantone, and spot color.

“DeviceN color space” or “DeviceN color space model” is a feature ofAdobe's PostScript language which allows developers to specify andrender four or more device-dependent colors.

“PostScript-enabled device” refers to an image forming device, such as aprinter, with an engine capable of executing machine executable programcode written in the PostScript page description programming language.

“Transparency Value” is a value set by an application between two ormore images. Each image is sometimes considered a layer with highernumber layers typically being closer to a point of view to an observer,and lower number layers further from the point of view of an observer.One of the images can be a printable substrate.

“Flatten” is the process of replacing low-resolution or omitted imagedata with high resolution image data. Flattening occurs in a PDF to PSconversion because PostScript does not support full transparency and isnot needed in a PDF RIP as PDF supports transparency. Since printing toa CMYK PostScript-enable printer requires separation, alayered/transparent PDF has to be flattened in advance of separation.

A “Transparency Flattener” (or “Flattener”) is a software component ofAdobe applications such as Illustrator, InDesign, and Acrobat 8Professional, that processes objects with live transparency effects,along with objects with which they interact, and recreates their visualappearance by using opaque objects that can be rendered in thePostScript imaging model. The Transparency Flattener breaks up parts ofthe image that overlap transparent areas, into smaller opaque regions tosimulated the transparent effects; clips overlapping regions oftransparency into smaller groups; or simply rasterizes (RIPs) theartwork into a bitmap. The Transparency Flattener processes both objectsthat are a source of transparency and those that interact withtransparency, possibly changing their composition in the output. Whenflattening transparency that interacts with spot colors, the Flattenermay use overprinting to render the proper result (opaque objectssimulate transparent effects). The Transparency Flattener uses CMYK orRGB color space in performing its color calculations.

A Transparency is flattened when a file containing live transparency is“converted” into a format that doesn't support live transparency or thefile is printed. This conversion is the job of the Flattener. Duringflattening, transparent objects are replaced with objects that arevisually equivalent to the transparent originals, but that contain notransparency. These new objects are often referred to as “flattenedtransparency”. A flattened transparency does not contain any livetransparent elements and, therefore, cannot be manipulated. An objectthat has had a transparency effect applied to it is referred to as a“source of transparency”. A source of transparency is any object thathas one or more of the following characteristics: opacity less than100%; non-Normal blending mode; drop shadow; or feather.

An object (or placed file) that appears beneath a source of transparencyinteracts with transparency regardless of the layer it was placed on. Anobject is a source of transparency if it has any of the following:

-   -   An opacity of less than 100%.    -   Any blending mode other than Normal.    -   An opacity mask (Illustrator).    -   A drop shadow or feather.    -   An inner glow or outer glow effect or other live effects.    -   A fill or stroke with a style, brush, pattern, or filter effect        that has any of the previous properties.

In addition, an object is a source of transparency if it is one of thefollowing placed files:

-   -   Photoshop (native, PDF, or TIFF) file with a transparent        background.    -   Illustrator (native or PDF) file that contains one or more        objects with any of the previous properties

In general, an object interacts with transparency if it is: a source oftransparency; overlapped by a source of transparency; or is very closeto a source of transparency and beneath it in stacking order (includingobjects on other layers). The stacking order is the front-to-back ortop-to-bottom order of objects on a page, both within and betweenlayers.

To “blend” transparent objects together, the Flattener uses a singlecolor space (RGB or CMYK) for the blending (called the “TransparencyBlend Space” (or simply, “blend space”). This blending space enablesobjects of multiple color spaces to blend when interactingtransparently. The Transparency Blend Space is used when blending colorsof transparent objects. The colors of the transparent objects areconverted to a common color space using either the CMYK or RGB colorprofile for the document. To avoid unintended color shifts duringflattening, it is important to properly set the Transparency BlendSpace. The blend space may be either the RGB or CMYK document colorspace. For example, if the Transparency Blend Space is CMYK, the colorspace profile used is the one defined as the document's CMYK workingspace. If a document is not being color-managed, a generic RGB or CMYKcolor profile is assigned to the document color space. The colorconversions performed by the Flattener augment the conversions performedat output. When a job that contains live transparency is printed (orexported to a file format that doesn't support live transparency), boththe Flattener and the application's print engine may convert colors. Theprinter may further perform additional color conversions.

“Transparency interaction” is the relationship between a source oftransparency and any other object that is a source of transparency, isoverlapped by a source of transparency, or is very close to (usuallywithin one point of) a source of transparency, and is beneath it instacking order.

An “image” refers to a spatial pattern of physical light comprised ofknown colors of the light spectrum, which are visible by the human eye.When reduced to capture or rendering, the image generally comprises aplurality of colored pixels. A printed image (or image print) would be aphotograph, plot, chart, and the like, as are generally known. When animage is rendered to a memory or storage, the values of the color pixelsare generally stored in any of a variety of known formats such as BMP,JPEG, GIF, TIFF, or other formats employed for storing image data on astorage media for subsequent retrieval. Received pixels of an inputimage are associated with a color value defined in terms of a colorspace, comprising typically of 3 color coordinates or axes. Pixels of areceived image may be converted to a chrominance-luminance space such asCIELAB or YCbCr.

“Image forming device” is any device capable of rendering an image. Theset of image output devices includes xerographic reproduction systems,multifunction devices, and the like. A laser or inkjet printer is oneexample of a color-marking device, which rendered an image from areceived signal of image data by the visual integration of color inksdeposited onto an imageable media substrate. An image out put deviceincludes printers and multi-function machines (scan, copy, fax, and/orprint). When an image is rendered, the signal of image data is reducedto a viewable form.

An “imageable substrate” is a substrate such as paper, film, cardstock,photographic paper, Mylar, and other printable surfaces.

EXAMPLE INFORMATION PROCESSING SYSTEM AND IMAGE FORMING SYSTEM

Reference is now made to FIG. 1 which illustrates a block diagram of themajor functional components for an information processing system, suchas a computer, communicating with an image forming device.

In FIG. 1, client 102 is communicatively coupled through a wired orwireless network 120 to image forming device 132. The client has one ormore installed applications 112 which enable a wide variety ofcomputer-based tasks. Such applications are written in numerousprogramming languages, such as Adobe Reader, word processor, spreadsheet, or similar. Operating system 110 is the master program that loadsafter the Hardware Abstraction Layer (HAL) and the Basic Input OutputSystem (BIOS) 106 initializes. The operating system controls and runshardware 104. Example operating systems include various iterations ofWindows (3.1/95/98/ME/2000/NT/XP/Vista), Unix, Macintosh OS, OS/2, SunSolaris, to name but a few. One or more device drivers which arehardware-specific code used to communicate between and operating system110 and hardware peripherals such as a CD ROM drive or printer, such asimage forming device 132 through HAL and BIOS through hardware 104. BIOS106 is a set of low-level computer hardware instructions forcommunications between an operating system 110, device driver 108, andhardware 104. Image forming device 132 is PostScript-enabled with aPostScript engine 132. Optional Raster Image Processor (RIP) 142 and/orimage processor(s) 128 are shown. These communicate with one or moreprint engines running on a hardware platform to form an image on animageable substrate 144.

Reference is now made to FIG. 2 which illustrates a block diagram 200 ofthe major electronic components for either the hardware of client 102and/or that of the image forming device 132 of FIG. 1.

The major electronic components include: a central processing unit (CPU)202, an Input/Output (I/O) Controller 204, a mouse 232 a keyboard 216, asystem power and clock source 206; display driver 208; RAM 210, ROM 212,ASIC 214 and a hard drive 218. These are representative components of acomputer. Optional components for interfacing to external devicesinclude Network interface 220, which provides connection to a computernetwork such as Ethernet over TCP/IP, or other popular protocol networkinterfaces, a Small Computer Systems Interface (SCSI) port 222 forattaching peripherals; a PCMCIA slot 224; and serial port 526. Anoptional drive 228 is also shown for loading or saving code to removableCDs and DVDs 230. The general operation of a computer comprising suchmajor electronic components is well understood. As such, a furtherdetailed discussion as to interfaces, interoperability, and the like,between such components has been omitted here for brevity.

OVERVIEW OF ONE EXAMPLE IMPLEMENTATION

The DeviceN color space allows the application to define a color spacewith an arbitrary number input planes. Traditionally, each planerepresents an ink loaded into a printing press. If all of the requested“ink” names are not present on the device, then the device must use theemulation space provided to convert the incoming color requests usingthe provided color emulation procedure. With this method, PostScriptfiles can contain images encoded for a Hexachrome press, but still printon a four color device. The color planes in the DeviceN color space donot have to represent inks at all. They can represent abstract data. Forexample, the transparency of the next three RGB planes.

Reference is now made to FIG. 3 which is a diagram of input channels intwo different color spaces; CMYK shown as color channels 302-310 and RGBshown as channels 312-318. Note the existence of the transparencycolorant channel 302 for CMYK and 312 for RGB. These are set by theapplication creating the print job in emulation subsystem 352. In thiscase there are two transparency colorant channels, and there can be oneor more for any implementation, along with a colorant value astransparency values 352 and 358 from channel-9 302 for CMYK andchannel-4 for RGB 312 in the DeviceN color space model being flattenedand blended 360. In this example, the blending space is CIE Lab 354 and358 with the CIE Lab color then processed via the Color RenderDictionary (CRD). It is important to note that any DeviceN color spacecan be used. All of the data present after flattening and blending 360is sent as CIE Lab 362 to the PostScript-enabled device.

EXAMPLE FLOW DIAGRAM

Reference is now made to the flow diagram of FIG. 4 which illustratesone example embodiment of the present method for emulating transparencyin a PostScript-enabled device, such as a printer.

The method starts at 402 and immediately proceeds to step 404 wherein afirst image and a second image to be blended together are receivedtypically from application(s) 112, for example Adobe Reader. Othersources of images are within the true scope and spirit of the presentinvention including receiving images from other applications, accessingimages from computer memory, receiving images from scanners and e-mailand more.

At 406, two or more colorant channels are received from an application,such as Adobe Reader, for forming an image on a PostScript-enableddevice. At least one of the colorant channels is a transparency valueused for blending in DeviceN Color Space of PostScript.

At 408, custom PostScript code is created for flattening and blendingthe first image into the second image on the PostScript-enabled device.Example of flattening and blending is described further in the sectionbelow entitled “Example Demonstration” along with the example PostScriptcode in FIG. 7.

At 412, the PostScript code is then sent to the PostScript-enableddevice for flattening and blending of the first image into the secondimage in step 410 and the process ends.

In another embodiment, the first image and the second image are indifferent color spaces, and the custom PostScript code converts from onecolor space to another color space at the image forming device. Examplesof color spaces found to be used advantageously by the current inventioninclude RGB, CMYK, CIE Lab, calibrated device space, calibrated RGB,pantone, and spot color.

EXAMPLE DEMONSTRATION

Reference is now being made to FIG. 5 which is an example using themethod of FIGS. 3 and 4, implemented by the code in FIG. 7, for a seriesof input levels or planes of a first image and a second image beingcombined with transparency with the blending color space beingDeviceCMYK. Again, it should be clearly understood that any supportedDeviceN emulation color space can be used.

The data is processed in layers. There are two layers here. The first(bottom-most) layer is the RGB tiger image shown as 502, 504, 506 andtransparency value 508. The second (top-most) layer is the CMYK housecatimage shown as 522, 524, 526, 528, and transparency value 530. In thisexample, there are nine channels of input corresponding to inputchannels 302 through 318 of FIG. 3. In this example, the transparencyvalue 0 (black) is interpreted as fully transparent, and a transparencyvalue of 1 (one) is interpreted as fully opaque. These values can beinverted within the true scope and spirit of the present invention.

The blending begins with paper white which, in one embodiment, is givenby:

$\begin{matrix}{v_{0}^{\prime} \equiv \begin{bmatrix}0 \\0 \\0 \\0\end{bmatrix}} & (1)\end{matrix}$

The RGB tiger color is converted into CMYK in a manner well establishedin the relevant arts. In another embodiment, a 3-D interpolated look-uptable is used to perform the RGB to CMYK color conversion.

Once converted, the CMYK vector for the first layer (tiger image) canthen be represented as:

$\begin{matrix}{v_{1} \equiv \begin{bmatrix}c_{1} \\m_{1} \\y_{1} \\k_{1}\end{bmatrix}} & (2)\end{matrix}$

The blended color value, v′₁ for the first layer is given by:v′ ₁=(1−t ₁)v′ ₀ +t ₁ v ₁  (3)

where t₁ is the transparency of the first layer, such that 0≦t₁≦1.

The CMYK for the second layer (housecat image) can be represented as:

$\begin{matrix}{v_{2} \equiv \begin{bmatrix}c_{2} \\m_{2} \\y_{2} \\k_{2}\end{bmatrix}} & (4)\end{matrix}$

The blended color value v′₂ for the second layer is given by:v′ ₂=(1−t ₂)v′ ₁ +t ₂ v ₂  (5)

where t₂ is the transparency of the second layer, such that: 0≦t₂≦1.

In general, a blended color value v′₁ for a given layer can berepresented by the following:v′ _(i)=(1−t _(i))v′ _(i−1) +t _(i) v _(i)  (6)

where t₁ is the transparency value of the i^(th) layer such that(0≦t₁≦1).

It is important to distinguish that the CMYK space may not be the sameCMYK blending space. In another embodiment, a 4-D interpolated lookuptable is a useful general mechanism for performing this conversion.

FIG. 6 shows a resulting image 602 having been flattened and blended bythe embodiment of FIG. 5. Specifically, notice that the image of thehouse cat on the left side of FIG. 6 is blended according to thetransparency value 530 of FIG. 5. Likewise, the notice that the image ofthe tiger on right side of FIG. 5 is blended according to thetransparency value 508. The resulting image of FIG. 6 illustrates theblending of two images, the tiger in RGB color space with the house catin CMYK color space, according to a transparency value in the colorantchannels, i.e., 508 for the tiger and 530 for the house cat.

FIGS. 7 and 8 show example PostScript code implementing the flow diagramof FIG. 4 on a PostScript-enabled device. Here the convert_rgb_to_cmykis a simple UCR/GCR routine, this assumes that RGB can be converted toCMYK in a non-colorimetric way. The CMYK image is assumed to be in theblending space. Both of these assumptions are not valid in a real worldapplication. In FIG. 7, the example PostScript code is organized into afew functional areas. The routine “/convert_rgb_to_cmyk%rgb=>cmyk”converts the image in a RGB color space into a CMYK color space. Recallin this example, the tiger image is shown in FIG. 5 is in RGB colorspace and the house cat is in CMYK color space. The resulting blendedimage in this examples is in CMYK color space. Again, the presentinvention is not limited to blending in the CMYK color space and othercolor spaces are within the true scope and spirit of the presentinvention. The routine “/blend_(—)4% v0 v1 v2 v3 b0 b1 b2 b3 T=>v0′ v1′v2′ v3′” implements Eqs. 1-6 above. Next, definitions used in theroutines that define the color channels in each color space RGB and CMYKalong with its corresponding transparency value are listed. For example,the definition “/DeviceCMYK” defines the color layers used in theblending. This is followed by more definitions and source encoded binarydata for the first image and the second image as will be understood to aperson familiar with PostScript code.

It should be clear at this point that none of the computation shown herecould be performed on the host or client 102 of FIG. 1. This is anadvantage because prior techniques required the flattening and blendingto be performed on the imaging processing system or client. Theflattening process requires color conversion. This requires knowing whatcolors the individual objects that make up the layers are to be printedon the page. This is frequently different than the color requested.There is the color the customer asks for, and a color that the customerthinks he/she wants, the color that will make them happy, and the colorthat they actually get. Sometimes all four of those colors are the samecolor, but more frequently, they are not. Many market segments don'twant colorimetric matching. Subjective color matching is a requirementto be competitive in these markets. For example, an RGB color and a CMYKcolor with the same requested CIE Lab value, will most likely print onthe page as two different colors. Many printer manufacturers havecomplex color behaviors built in their products. In order for flatteningto happen correctly on the host, the host would have to be aware of (andemulate e) the color behavior of the printer.

In contrast, the present system and method sends all the layers down tothe image forming device, such as a printer, and lets the printer do theflattening. The application provides the code to perform the “generic”flattening that would occur on the host. The printer, however, is awareof its own intrinsic color behavior, and can replace the “generic”flattening code with product-specific code. Some hints from theapplication would make this process a lot more reliable and easy. Forexample, the transparency layer name could include the CSA name from theAGM core code. With this mechanism, color results, equivalent to hostbased flattening, happen on the printer by default, while adding theadditional capability of allowing each manufacturer to tune theflattening code to their specific product. Currently, applications haveto perform flattening. This essentially comprises a two step process:rendering, and blending. Rendering is the part of the algorithm thatcomputes color values for all layers for a particular point on a givenpage. Blending takes all layers and computes a single color value. SincePostScript does not fully support transparency, the rendering portion ofthe flattening must remain a function of the application. Whereas, theblending can be pushed down onto the printer.

Other Variations

It should be understood that the flow diagrams depicted herein areillustrative. One or more of the operations illustrated in any of theflow diagrams may be performed in a differing order. Other operations,for example, may be added, modified, enhanced, condensed, integrated, orconsolidated. Variations thereof are envisioned, and are intended tofall within the scope of the appended claims.

It should also be understood that the method described in the flowchartsprovided herewith can be implemented on a special purpose computer, amicro-processor or micro-controller, an ASIC or other integratedcircuit, a DSP, an electronic circuit such as a discrete elementcircuit, a programmable device such as a PLD, PLA, FPGA, PAL, PDA, andthe like. In general, any device capable of implementing a finite statemachine, that is in turn capable of implementing one or more elements ofthe flow diagrams provided herewith, or portions thereof, can be used.Portions of the flow diagrams may also be implemented partially or fullyin hardware in conjunction with machine executable instructions.

Furthermore, the flow diagrams hereof may be partially or fullyimplemented in software using object or object-oriented softwaredevelopment environments that provide portable source code that can beused on a variety of computer, workstation, server, network, or otherhardware platforms. One or more of the capabilities hereof can beemulated in a virtual environment as provided by an operating system,specialized programs, or from a server.

The teachings hereof can be implemented in hardware or software usingany known or later developed systems, structures, devices, and/orsoftware by those skilled in the applicable art without undueexperimentation from the functional description provided herein with ageneral knowledge of the relevant arts.

Moreover, the methods hereof may be readily implemented as softwareexecuted on a programmed general purpose computer, a special purposecomputer, a microprocessor, or the like. In this case, the methodshereof can be implemented as a routine embedded on a personal computeror as a resource residing on a server or workstation, such as a routineembedded in a plug-in, a photocopier, a driver, a scanner, aphotographic system, a xerographic device, or the like. The methodsprovided herein can also be implemented by physical incorporation intoan image processing or color management system.

One or more aspects of the methods described herein are intended to beincorporated in an article of manufacture, including one or morecomputer program products, having computer usable or machine readablemedia. For purposes hereof, a computer usable or machine readable mediais, for example, a floppy disk, a hard-drive, memory, CD-ROM, DVD, tape,cassette, or other digital or analog media, or the like, which iscapable of having embodied thereon a computer readable program, one ormore logical instructions, or other machine executable codes or commandsthat implement and facilitate the function, capability, andmethodologies described herein.

Furthermore, the article of manufacture may be included on at least onestorage device readable by a machine architecture or other xerographicor image processing system embodying executable program instructionscapable of performing the methodology described in the flow diagrams.Additionally, the article of manufacture may be included as part of axerographic system, an operating system, a plug-in, or may be shipped,sold, leased, or otherwise provided separately, either alone or as partof an add-on, update, upgrade, or product suite.

It will be appreciated that various of the above-disclosed and otherfeatures and functions, or alternatives thereof, may be desirablycombined into many other different systems or applications. Variouspresently unforeseen or unanticipated alternatives, modifications,variations, or improvements therein may become apparent and/orsubsequently made by those skilled in the art, which are also intendedto be encompassed by the following claims. Accordingly, the embodimentsset forth above are considered to be illustrative and not limiting.Various changes to the above-described embodiments may be made withoutdeparting from the spirit and scope of the invention.

1. A method for emulating transparency with an image forming devicecapable of executing page description language program code formanipulating color in a DeviceN color space, the method comprising:receiving, from an application for forming an image on an image formingdevice, a first image and a second image to be blended together in aDeviceN color space; receiving at least two colorant channels from saidapplication at least one of said received colorant channels having atransparency value; assembling page description language program codefor flattening and blending said first image into said second imagebased upon said transparency value; and sending said page descriptionlanguage program code to said image forming device, an execution of saidcode by said image forming device flattening and blending said firstimage into said second image to emulate transparency, wherein said pagedescription language program code includes code for blending said firstimage into said second image, wherein a blended color value v′_(i) for asecond layer is given by:v′ _(i)=(1−t ₂)v′ _(i−1) +t ₂ v _(i) where t₂ is a transparency value ofsaid second image such that 0≦t₂≦1.
 2. The method of claim 1, whereinsaid first image being received in a first color space, and said secondimage being received in a second color space, and wherein said pagedescription language program code includes code for converting saidfirst color space to said second color space.
 3. The method of claim 1,wherein said page description language program code further includescode for blending said first image into said second image in accordancewith said transparency value such that, if said transparency value is100%, only said first image is used and, if said transparency value is0%, only said second image is used.
 4. The method of claim 2, whereinsaid first color space is any of: RGB, CMYK, CIE Lab, calibrated devicespace, calibrated RGB, pantone, and spot color.
 5. The method of claim1, wherein said first image represents an imageable substrate upon whichsaid second image is blended.
 6. The method of claim 1, wherein saidapplication for forming an image on an image forming device is AdobeReader and wherein said page description language program code isPostScript.
 7. An image forming device for emulating transparency, saiddevice comprising: a PostScript engine; and PostScript code forexecution by said PostScript engine for blending and flattening of afirst image into a second image, said PostScript code being assembledwith values for said first and second images and a least two colorantchannels from an Adobe Reader software application for forming an imageon a PostScript-enabled image forming device, at least one of saidcolorant channels having a transparency value for blending in a DeviceNcolor space, wherein said PostScript code includes code for blendingsaid first image into said second image, wherein a blended color valuev′_(i) for a second layer is given by:v′ _(i)=(1−t ₂)v′ _(i−1) +t ₂ v _(i) where t₂ is a transparency value ofsaid second image such that 0≦t₂≦1.
 8. The image forming device of claim7, wherein said first image is in a first color space and said secondimage in a second color space, said PostScript code including code forconverting said first color space to said second color space.
 9. Theimage forming device of claim 7, wherein said PostScript code furtherincludes code for blending said first image into said second image inaccordance with said transparency value such that, if said transparencyvalue is 100%, only said first image is used and, if said transparencyvalue is 0%, only said second image is used.
 10. The image formingdevice of claim 7, wherein said first color space is any of: RGB, CMYK,CIE Lab, calibrated device space, calibrated RGB, pantone, and spotcolor.
 11. A system for emulating transparency with an image formingdevice capable of executing page description language program code formanipulating color in a DeviceN color space, the system comprising: amemory and a storage medium; and a processor in communication with saidstorage medium and said memory, said processor executing machinereadable instructions for performing: receiving, from an application forforming an image on an image forming device, a first image and a secondimage to be blended together in a DeviceN color space; receiving atleast two colorant channels from said application at least one of saidreceived colorant channels having a transparency value; assembling pagedescription language program code for flattening and blending said firstimage into said second image based upon said transparency value; andsending said page description language program code to said imageforming device, an execution of said code by said image forming deviceflattening and blending said first image into said second image toemulate transparency, wherein said page description language programcode includes code for blending said first image into said second image,wherein a blended color value v′_(i) for a second layer is given by:v′ _(i)=(1−t ₂)v′ _(i−1) +t ₂ v _(i) where t₂ is a transparency value ofsaid second image such that 0≦t₂≦1.
 12. The system of claim 11, whereinsaid first image being received in a first color space, and said secondimage being received in a second color space, and wherein said pagedescription language program code includes code for converting saidfirst color space to said second color space.
 13. The system of claim11, wherein said page description language program code further includescode for blending said first image into said second image in accordancewith said transparency value such that, if said transparency value is100%, only said first image is used and, if said transparency value is0%, only said second image is used.
 14. The system of claim 12, whereinsaid first color space is any of: RGB, CMYK, CIE Lab, calibrated devicespace, calibrated RGB, pantone, and spot color.
 15. The system of claim11, wherein said first image represents an imageable substrate uponwhich said second image is blended.
 16. The system of claim 11, whereinsaid application for forming an image on an image forming device isAdobe Reader and wherein said page description language program code isPostScript.